From 594e1f98b75afc02224b5525526be21f647da6d5 Mon Sep 17 00:00:00 2001 From: Jimi Xenidis Date: Sat, 7 Oct 2006 16:25:46 -0400 Subject: [PATCH] [POWERPC][XEN] implement the UP side of __flush_tlb_mask() The SMP side will need to be done soone enough Signed-off-by: Jimi Xenidis Signed-off-by: Hollis Blanchard --HG-- extra : transplant_source : %E3%03v%A0%AB%C3%91%17%F6%04%B0%F6%CCx%17%DE%B3%EB%90y --- xen/arch/powerpc/smp.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/xen/arch/powerpc/smp.c b/xen/arch/powerpc/smp.c index 4667518a2b..700d11176b 100644 --- a/xen/arch/powerpc/smp.c +++ b/xen/arch/powerpc/smp.c @@ -29,7 +29,21 @@ int ht_per_core = 1; void __flush_tlb_mask(cpumask_t mask, unsigned long addr) { - unimplemented(); + if (cpu_isset(smp_processor_id(), mask)) { + cpu_clear(smp_processor_id(), mask); + if (cpus_empty(mask)) { + /* only local */ + if (addr == FLUSH_ALL_ADDRS) + local_flush_tlb(); + else + local_flush_tlb_one(addr); + return; + } + } + /* if we are still here and the mask is non-empty, then we need to + * flush other TLBs so we flush em all */ + if (!cpus_empty(mask)) + unimplemented(); } void smp_send_event_check_mask(cpumask_t mask) -- 2.30.2